/**
 * @file
 * @author dousha
 * @date 2020
 */

#include "usb.h"

/**
 * 初始化 USB 接口
 */
void usb_init() {

}

/**
 * 从 USB 接口读出一个字节。
 *
 * 这个函数的实现默认是阻塞的。
 *
 * @return 获得的字节
 */
uint8_t usb_read_byte() {

}

/**
 * 向 USB 接口写入一个字节。
 *
 * 如果希望写入多个字节，见 usb_write_bytes.
 *
 * 这个函数的实现默认是阻塞的。
 *
 * @param byte 要写入的字节。
 */
void usb_write_byte(uint8_t byte) {

}

/**
 * 向 USB 接口写入若干字节。
 *
 * 这个函数的实现默认是阻塞的。
 *
 * 这个函数不会检查数组边界。
 *
 * @param bytes 需要写入的字节
 * @param [in] length 需要写入的长度
 */
void usb_write_bytes(uint8_t *bytes, uint32_t length) {

}

/**
 * 当 USB 收到数据时，调用回调函数处理。
 *
 * 回调函数为 NIL 时，则代表反注册回调函数。
 *
 * @param callback 处理回调，参数为收到的字节
 */
void usb_on_byte_arrive(void (*callback)(uint8_t)) {

}

/**
 * 当 USB 发送数据时，调用回调函数处理。
 *
 * 回调函数为 NIL 时，则代表反注册回调函数。
 *
 * @param callback 处理回调，参数为发送的字节
 */
void usb_on_byte_depart(void (*callback)(uint8_t)) {

}
